/**
 * 获取用户头像URL
 * 如果用户有自定义头像，则返回该头像URL
 * 否则返回空字符串（让组件显示首字母头像）
 *
 * @param {string} avatar - 用户头像URL
 * @returns {string} - 最终使用的头像URL，如果没有则返回空字符串
 */
export function getAvatarUrl(avatar) {
  // 如果用户有自定义头像，则返回该头像
  if (avatar && avatar.trim() !== "") {
    // 如果是完整的URL，直接返回
    if (avatar.startsWith("http://") || avatar.startsWith("https://")) {
      return avatar;
    }

    // 如果是相对路径，拼接后端服务器地址
    if (avatar.startsWith("/uploads/")) {
      // 从环境变量获取API基础URL，如果没有则使用默认值
      const baseUrl = import.meta.env.VITE_API_BASE_URL || "http://localhost:8080";
      return `${baseUrl}${avatar}`;
    }

    return avatar;
  }

  // 返回空字符串，让调用方处理默认头像显示
  return "";
}

/**
 * 获取用户名首字母作为头像显示
 * 如果用户名不存在，则返回默认字母
 *
 * @param {string} username - 用户名
 * @returns {string} - 首字母大写
 */
export function getUserInitial(username) {
  if (!username || username.trim() === "") {
    return "U"; // User 的首字母作为默认
  }

  // 获取第一个字符（支持中文）
  const firstChar = username.charAt(0);
  return firstChar.toUpperCase();
}

/**
 * 获取用户头像的完整信息
 * 同时返回头像URL和首字母，方便组件使用
 *
 * @param {Object} userInfo - 用户信息对象
 * @returns {Object} - 包含 avatarUrl 和 userInitial 的对象
 */
export function getUserAvatarInfo(userInfo) {
  const avatar = userInfo?.avatar || "";
  const username = userInfo?.username || "";

  return {
    avatarUrl: getAvatarUrl(avatar),
    userInitial: getUserInitial(username),
  };
}
